home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_xemacs.idb / usr / freeware / lib / xemacs-20.4 / lisp / ilisp / ilisp-cmu.el.z / ilisp-cmu.el
Encoding:
Text File  |  1998-05-21  |  3.0 KB  |  102 lines

  1. ;;; -*- Mode: Emacs-Lisp -*-
  2.  
  3. ;;; ilisp-cmu.el --
  4.  
  5. ;;; This file is part of ILISP.
  6. ;;; Version: 5.8
  7. ;;;
  8. ;;; Copyright (C) 1990, 1991, 1992, 1993 Chris McConnell
  9. ;;;               1993, 1994 Ivan Vasquez
  10. ;;;               1994, 1995, 1996 Marco Antoniotti and Rick Busdiecker
  11. ;;;               1996 Marco Antoniotti and Rick Campbell
  12. ;;;
  13. ;;; Other authors' names for which this Copyright notice also holds
  14. ;;; may appear later in this file.
  15. ;;;
  16. ;;; Send mail to 'ilisp-request@naggum.no' to be included in the
  17. ;;; ILISP mailing list. 'ilisp@naggum.no' is the general ILISP
  18. ;;; mailing list were bugs and improvements are discussed.
  19. ;;;
  20. ;;; ILISP is freely redistributable under the terms found in the file
  21. ;;; COPYING.
  22.  
  23.  
  24. ;;;
  25. ;;; ILISP CMU Common Lisp dialect definition
  26. ;;;
  27. ;;;%%%CMULisp
  28.  
  29. (defvar cmulisp-source-directory-regexp 
  30.   "\\/afs\\/cs\\.cmu\\.edu\\/project\\/clisp\\/src\\/[0-9]*\\/"
  31.   "*Regexp to match cmulisp source code directory.")
  32.  
  33. (defvar cmulisp-local-source-directory
  34.   nil
  35.   "*Where the cmulisp sources really are.")
  36.  
  37. (defvar ilisp-cmulisp-init-file "cmulisp.lisp")
  38.  
  39. (defun cmulisp-source-directory-fixup-function ()
  40.   (if cmulisp-local-source-directory
  41.       (replace-match cmulisp-local-source-directory)))
  42.  
  43. (defun cmulisp-check-prompt (old new)
  44.   "Compare the break level printed at the beginning of the prompt."
  45.   (let* ((was-in-break (and old (string-match "]+" old)))
  46.       (old-level (if was-in-break
  47.              (- (match-end 0) (match-beginning 0))
  48.              0))
  49.       (is-in-break (string-match "]+" new))
  50.       (new-level (if is-in-break
  51.              (- (match-end 0) (match-beginning 0))
  52.              0)))
  53.     (<= new-level old-level)))
  54.  
  55. ;;;
  56. (defdialect cmulisp "CMU Common LISP"
  57.   clisp
  58.   (ilisp-load-init 'cmu ilisp-cmulisp-init-file)
  59.   (if cmulisp-local-source-directory
  60.       (setq ilisp-source-directory-fixup-alist
  61.         (list 
  62.          (cons cmulisp-source-directory-regexp
  63.            cmulisp-local-source-directory)))
  64.     (message "cmulisp-local-source-directory not set."))
  65.   (setq comint-prompt-regexp "^\\([0-9]+\\]+\\|\\*\\) "
  66.     ilisp-trace-command "(ILISP:cmulisp-trace \"%s\" \"%s\" \"%s\")"
  67.     comint-prompt-status 
  68.     (function (lambda (old line)
  69.       (comint-prompt-status old line 'cmulisp-check-prompt)))
  70.  
  71.     ilisp-error-regexp "ILISP:[^\"]*\\|Error [^\n]*\n\n"
  72.     ;; The above regexp has been suggested by
  73.     ;; hunter@work.nlm.nih.gov (Larry Hunter)
  74.  
  75.     ilisp-arglist-command "(ILISP:arglist \"%s\" \"%s\")"
  76.  
  77.     ilisp-find-source-command "(ILISP:source-file \"%s\" \"%s\" \"%s\")"
  78.  
  79.     comint-fix-error ":pop"
  80.  
  81.     comint-continue ":go"
  82.  
  83.     ilisp-reset ":q"
  84.  
  85.     comint-interrupt-regexp "Interrupted at")
  86.  
  87.   (if (progn
  88.       (shell-command "uname -s")
  89.       (save-excursion
  90.         (set-buffer "*Shell Command Output*")
  91.         (goto-char (point-min))
  92.         (looking-at "[Ll]inux")))
  93.       (setq
  94.        ilisp-binary-extension "x86f"
  95.        ilisp-init-binary-extension "x86f"
  96.        ilisp-binary-command "\"x86f\"")
  97.     ;; else assume sparc.
  98.     (setq ilisp-binary-extension "sparcf"
  99.       ilisp-init-binary-extension "sparcf"
  100.       ilisp-binary-command "\"sparcf\"")))
  101.  
  102.